package top.kuxiao.crmserver.utils;

import org.springframework.util.DigestUtils;

import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Base64;

/**
 * 生成加密后的密码
 * 比对密码是否正确
 */
public class PasswordUtil {
    private PasswordUtil(){}

    /**
     * 生成加密密码
     * @param id 唯一数字标记
     * @param name 唯一名称
     * @param realPassword 真实密码
     * @return 加密后的密码字符串
     */
    public static String genPassword(int id, String name, String realPassword){
        byte[] bytes = (id + name + realPassword).getBytes(StandardCharsets.UTF_8);  // 拼接字符串 获取字节数组
        byte[] encode = Base64.getEncoder().encode(bytes);  // base64编码
        byte[] md5 = DigestUtils.md5Digest(encode);  // md5编码
        return new String(md5);  // 返回
    }

    /**
     * 比对密码是否正确
     * @param id 唯一数字标记
     * @param name 唯一名称
     * @param realPassword 真实密码
     * @param password 加密后密码
     * @return 比对结果
     */
    public static boolean equalsPassword(int id, String name, String realPassword, String password){
        if (password == null || realPassword == null){
            return false;
        }
        return password.equals(genPassword(id, name, realPassword));
    }


}
